ftp服务器
参考https://www.hangge.com/blog/cache/detail_2449.html
拉取镜像
| docker pull fauria/vsftpd
|
启动容器
参数说明:
- /home/ftp:/home/vsftpd:映射 docker 容器 ftp 文件根目录(冒号前面是宿主机的目录)
- -p:映射 docker 端口(冒号前面是宿主机的端口)
- -e FTP_USER=test -e FTP_PASS=test :设置默认的用户名密码(都为 test)
- PASV_ADDRESS:宿主机 ip,当需要使用被动模式时必须设置。
- PASV_MIN_PORT~ PASV_MAX_PORT:给客服端提供下载服务随机端口号范围,默认 21100-21110,与前面的 docker 端口映射设置成一样。
| docker run -d -v /home/ftp:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=test -e FTP_PASS=test \
-e PASV_ADDRESS=192.168.60.128 \
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd
|
防火墙配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=21100/tcp
firewall-cmd --permanent --add-port=21101/tcp
firewall-cmd --permanent --add-port=21102/tcp
firewall-cmd --permanent --add-port=21103/tcp
firewall-cmd --permanent --add-port=21104/tcp
firewall-cmd --permanent --add-port=21105/tcp
firewall-cmd --permanent --add-port=21106/tcp
firewall-cmd --permanent --add-port=21107/tcp
firewall-cmd --permanent --add-port=21108/tcp
firewall-cmd --permanent --add-port=21109/tcp
firewall-cmd --permanent --add-port=21110/tcp
firewall-cmd --reload
|
新建用户文件夹
| docker exec -i -t vsftpd bash
|
- 由于前面我们启动的时候设置用户名为 test,已经自动创建对应的用户文件夹(所以下面这个文件夹无需我们再次手动创建):
- 为方便演示,在 test 用户文件夹下新建一个 1.txt 文件。
| vi /home/vsftpd/test/1.txt
|
访问服务
| ftp://test:test@192.168.60.128:21
|
增加一个新用户
| docker exec -i -t vsftpd bash
|
| mkdir /home/vsftpd/hangge
|
| vi /etc/vsftpd/virtual_users.txt
|
| /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
|
- 最后退出容器,并重启容器可以使用新用户连接 FTP 服务了。
| exit
docker restart vsftpd
|